/**
 * Created by yangjiao on 2017/7/3.
 */
import send from '../../http'
export default {
  /**
   * 获取所有通话设置
   * @param {Object} data
   * @param {String} data.Account 账号id
   * @param {String} data.PBX pbx
   */
  getAllNodesByPbx (data) {
    let req = {
      data,
      action: 'config.ivr.getAllNodesByPbx'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 获取指定通话设置
   * @param {Object} data
   * @param {String} data.Account 账号id
   * @param {String} data.PBX pbx
   * @param {String} data.type 指定type
   */
  getAssignNodesByPbx (data) {
    let req = {
      data,
      action: 'config.ivr.getAssignNodesByPbx'
    }
    return send.fetch(req, 'post')
  },
  /**
   * ivr生效
   * @param {Object} data
   * @param {String} data.Account 账号id
   * @param {String} data.PBX pbx
   */
  reloadIvr (data) {
    let req = {
      data,
      action: 'config.ivr.reloadIvr'
    }
    return send.fetch(req, 'post')
  },

  /* 技能组设置 start */

  /**
   * 查询技能组列表
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} [data.PBX] pbx
   * @param {String} [data.DisplayName] 技能组名称
   * @param {Boolean} [data.paging] 是否分页查询
   * @param {Number} [data.limit] 分页查询limit，默认10
   * @param {Number} [data.page] 分页查询page，默认1
   */
  queryQueue (data) {
    let req = {
      data,
      action: 'config.ivr.queue.queryQueue'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 添加/修改技能组
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} data.PBX pbx
   * @param {String} data.action 'add' => 添加，'update' => 修改
   * @param {String} data.State 是否启用（没找到使用的地方，传'enable'）
   * @param {String} data.Type 类型，'normal'
   * @param {String} data.DisplayName 名称
   * @param {String} data.Strategy 座席分配策略，'rrmemory' => 轮流，'random' => 随机，'fewestcalls' => 接听最少
   * @param {Boolean} data.SayExten 是否启用报工号
   * @param {Boolean} data.AgentExtenPoint 是否启用报工号后的提示音
   * @param {String} data.JoinEmpty 无空闲座席时立刻流转，'1' => 是，'0' => 否
   * @param {String|Number} data.SayQueuePosition 播报排队位置时间间隔，'0' => 不播报
   * @param {String} data.BussinessTypeId 来电弹屏，'business_${工单流程id}'，'callUrls_${来电弹屏id}'
   * @param {String} data.MusicClass 等待语音
   * @param {String} data.Music 进入技能组提示音
   * @param {String|Number} data.WaitTime 等待时长
   * @param {String|Number} data.Timeout 座席振铃时长
   * @param {String} data.ToPeerTypeWhenQueueEmpty 技能组为空时转向类型
   * @param {String} data.ToPeerWhenQueueEmpty 技能组为空时转向
   * @param {String} data.ToPeerTypeWhenWait 正在等待时转向类型
   * @param {String} data.ToPeerWhenWait 正在等待时转向
   * @param {String} data.ToPeerTypeWhenWaitTimeout 等待超时转向类型
   * @param {String} data.ToPeerWhenWaitTimeout 等待超时转向
   * @param {String} data.ToPeerTypeWhenHanguped 通话结束后转向类型
   * @param {String} data.ToPeerWhenHanguped 通话结束后转向
   * @param {String} data.MemberToken 座席分配，['${座席id}:${优先级}']
   * ---- 以下为修改时要另外提供的 ----
   * @param {String} [data._id] 技能组id
   * @param {String} [data.Exten] 技能组号
   */
  updateQueue (data) {
    let req = {
      data,
      action: 'config.ivr.queue.updateQueue',
      errMsg: 'operationFail'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 删除技能组
   * @param {Object} data
   * @param {*} data.* 与修改技能组传参相同
   */
  deleteQueue (data) {
    let req = {
      data,
      action: 'config.ivr.queue.deleteQueue'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 复制技能组
   * @param {Object} data
   * @param {*} data.* 与修改技能组传参相同
   */
   cloneQueue (data) {
    let req = {
      data,
      action: 'config.ivr.queue.cloneQueue'
    }
    return send.fetch(req, 'post')
  },
  /* 技能组设置 end */

  /* 服务号 start */
  /**
   * 查询服务号
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} [data.PBX] pbx
   * @param {String} [data.Exten] 服务号
   * @param {Boolean} [data.paging] 是否分页查询
   * @param {Number} [data.limit] 分页查询limit，默认10
   * @param {Number} [data.page] 分页查询page，默认1
   */
  queryServiceNo (data) {
    let req = {
      data,
      action: 'config.ivr.serviceNo.queryServiceNo'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 添加服务号
   * @param {Object} data
   * @param {String} data.Account 账号id
   * @param {String} data.PBX pbx
   * @param {String} data.Type 服务号类型，'normal'
   * @param {String} data.Exten 服务号
   * @param {String} data.DisplayName 别名
   */
  saveServiceNo (data) {
    let req = {
      data,
      action: 'config.ivr.serviceNo.saveServiceNo'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 添加轻量级服务号
   * @param {String} data.Account 账号id
   * @param {String} data.PBX pbx
   * @param {String} data.Type 服务号类型，'lightweight'
   * @param {String} data.Exten 服务号
   * @param {String} data.DisplayName 别名
   * @param {String} data.IvrProcessId 流程id
   * @param {String} data.ToPeerType 流转类型
   * @param {String} data.ToPeer 流转到
   */
  saveLightServiceNo (data) {
    let req = {
      data,
      action: 'config.ivr.serviceNo.saveLightServiceNo'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 修改服务号
   * @param {Object} data
   * @param {String} data.Account 账号id
   * @param {String} data.PBX pbx
   * @param {String} data._id 服务号id
   * @param {String} data.Type 服务号类型，'normal' => 普通， 'lightweight' => 轻量级
   * @param {String} data.Exten 服务号
   * @param {String} data.DisplayName 别名
   * @param {String} [data.IvrProcessId] 流程id（轻量级）
   * @param {String} [data.ToPeerType] 流转类型（轻量级）
   * @param {String} [data.ToPeer] 流转到（轻量级）
   */
  updateServiceNo (data) {
    let req = {
      data,
      action: 'config.ivr.serviceNo.updateServiceNo'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 删除服务号
   * @param {Object} data
   * @param {String} data.Account 账号id
   * @param {String} data.PBX pbx
   * @param {String} data._id 服务号id
   * @param {String} data.Type 服务号类型，'normal' => 普通， 'lightweight' => 轻量级
   * @param {String} data.Exten 服务号
   * @param {String} data.DisplayName 别名
   * @param {String} [data.IvrProcessId] 流程id（轻量级）
   * @param {String} [data.ToPeerType] 流转类型（轻量级）
   * @param {String} [data.ToPeer] 流转到（轻量级）
   */
  deleteServiceNo (data) {
    let req = {
      data,
      action: 'config.ivr.serviceNo.deleteServiceNo'
    }
    return send.fetch(req, 'post')
  },
  /* 服务号 end */

  /* 日程管理 start */
  /**
   * 查询日程
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} [data.PBX] pbx
   */
  querySchedule (data) {
    let req = {
      data,
      action: 'config.ivr.schedule.querySchedule'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 添加日程
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} data.PBX pbx
   * @param {String} data.ServiceNo 服务号
   * @param {String} data.DisplayName 日程名称
   * @param {String} data.Order 优先级
   * @param {String} data.StartDate 开始日期
   * @param {String} data.EndDate 结束日期
   * @param {String} data.StartTime 开始时间
   * @param {String} data.EndTime 结束日期
   * @param {Boolean} data.WeekMon 周一
   * @param {Boolean} data.WeekTue 周二
   * @param {Boolean} data.WeekWed 周三
   * @param {Boolean} data.WeekThu 周四
   * @param {Boolean} data.WeekFri 周五
   * @param {Boolean} data.WeekSat 周六
   * @param {Boolean} data.WeekSun 周日
   * @param {String} data.IvrProcessId 流程id
   * @param {String} data.ToPeerType 流转类型
   * @param {String} data.ToPeer 流转到
   */
  saveSchedule (data) {
    let req = {
      data,
      action: 'config.ivr.schedule.saveSchedule'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 修改日程
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} data.PBX pbx
   * @param {String} data.ServiceNo 服务号
   * @param {String} data._id 日程id
   * @param {String} data.AnnouncementId
   * @param {String} data.DisplayName 日程名称
   * @param {String} data.Order 优先级
   * @param {String} data.StartDate 开始日期
   * @param {String} data.EndDate 结束日期
   * @param {String} data.StartTime 开始时间
   * @param {String} data.EndTime 结束日期
   * @param {Boolean} data.WeekMon 周一
   * @param {Boolean} data.WeekTue 周二
   * @param {Boolean} data.WeekWed 周三
   * @param {Boolean} data.WeekThu 周四
   * @param {Boolean} data.WeekFri 周五
   * @param {Boolean} data.WeekSat 周六
   * @param {Boolean} data.WeekSun 周日
   * @param {String} data.IvrProcessId 流程id
   * @param {String} data.ToPeerType 流转类型
   * @param {String} data.ToPeer 流转到
   */
  updateSchedule (data) {
    let req = {
      data,
      action: 'config.ivr.schedule.updateSchedule'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 删除日程
   * @param {Object} data
   * @param {*} data.* 与修改日程相同
   */
  deleteSchedule (data) {
    let req = {
      data,
      action: 'config.ivr.schedule.deleteSchedule'
    }
    return send.fetch(req, 'post')
  },
  /* 日程管理 end */

  /* 流程管理 start */
  /**
   * 查询流程列表
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} [data.PBX] pbx
   * @param {String} [data.DisplayName] 流程名称
   * @param {Number} [data.limit] 分页查询limit，默认5
   * @param {Number} [data.page] 分页查询page，默认1
   */
  queryIvrProcessList (data) {
    let req = {
      data,
      action: 'config.ivr.process.queryIvrProcessList'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 根据id查询流程
   * @param {Object} data
   * @param {String} data._id 流程id
   */
  queryIvrProcessById (data) {
    let req = {
      data,
      action: 'config.ivr.process.queryIvrProcessById'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 添加流程
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} data.PBX pbx
   * @param {String} data.DisplayName 流程名称
   * @param {String} data.FirstNodeType 开始节点类型
   * @param {String} data.FirstNode 开始节点
   * @param {String} data.CreateUser 当前用户id
   */
  saveIvrProcess (data) {
    let req = {
      data,
      action: 'config.ivr.process.saveIvrProcess'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 修改流程
   * @param {Object} data
   * @param {String} data._id 流程id
   * @param {String} data.Account 账户id
   * @param {String} data.PBX pbx
   * @param {String} data.DisplayName 流程名称
   * @param {String} data.FirstNodeType 开始节点类型
   * @param {String} data.FirstNode 开始节点
   */
  updateIvrProcess (data) {
    let req = {
      data,
      action: 'config.ivr.process.updateIvrProcess'
    }
    return send.fetch(req, 'post')
  },

  /**
   * 删除流程
   * @param {Object} data
   * @param {String} data._id 流程id
   */
  delIvrProcess (data) {
    let req = {
      data,
      action: 'config.ivr.process.delIvrProcess'
    }
    return send.fetch(req, 'post')
  },
  /* 流程管理 end */

  /* 节点管理 start */
  /* 节点管理 end */

  /* 语音库 start */
  /**
   * 查询语音库
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} [data.PBX] pbx
   */
  querySound (data) {
    let req = {
      data,
      action: 'config.ivr.sound.querySound'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 添加/修改语音
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} data.PBX pbx
   * @param {String} [data._id] 语音id，修改时传
   * @param {String} data.SoundType 语音文件类型，'normal' => 普通语音，'hold' => 队列等待语音
   * @param {String} data.DisplayName 语音文件名称
   * @param {String} data.Memo 语音文件说明
   * @param {String} data.SoundFilePath 语音文件路径
   * @param {String} data.OldSoundFilePath 旧语音文件路径
   * @param {String} data.IsQiniuMusic 是否为七牛文件，'yes' => 是，'' => 不是
   * @param {String} data.QiniuMusicUrl 七牛url
   */
  updateSound (data) {
    let req = {
      data,
      action: 'config.ivr.sound.updateSound'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 删除语音
   * @param {Object} data
   * @param {String} data.Account 账户id
   * @param {String} data.PBX pbx
   * @param {String} data._id 语音id
   */
  deleteSound (data) {
    let req = {
      data,
      action: 'config.ivr.sound.deleteSound'
    }
    return send.fetch(req, 'post')
  },
  /* 语音库 end */

  /* 通话标签 start */
  /**
   * 查询通话标签
   * @param data
   * @param data.page
   * @param data.limit
   * @param data.DisplayName  可选/在根据名称查询时/支持模糊查询
   * @returns {*}
   */
  queryMultiCallLabels (data) {
    let req = {
      data: data,
      action: 'config.callLabel.queryMultiCallLabels'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 保存通话标签
   * @param data
   * @param data.page
   * @param data.limit
   * @param data.DisplayName  可选/在根据名称查询时/支持模糊查询
   * @returns {*}
   */
  saveMultiCallLabels (data) {
    let req = {
      data: data,
      action: 'config.callLabel.saveMultiCallLabels'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 导入通话标签
   * @param data
   * @param data.batchNo 批次号
   * @param data.batchRemark 批次号说明
   * @param data.fileName  上传的文件id
   * @param data.trueName  上传的文件名
   * @returns {*}
   */
  importCallLabel (data) {
    let req = {
      data: data,
      action: 'config.callLabel.importCallLabel'
    }
    return send.fetch(req, 'post')
  },
  queryCallLabelImportTask (data) {
    let req = {
      data: data,
      action: 'config.callLabel.queryCallLabelImportTask'
    }
    return send.fetch(req, 'post')
  },
  delCallLabelImportTask (data) {
    let req = {
      data: data,
      action: 'config.callLabel.delCallLabelImportTask'
    }
    return send.fetch(req, 'post')
  },
  batchUpdateCallLabelStatus (data) {
    let req = {
      data: data,
      action: 'config.callLabel.batchUpdateCallLabelStatus'
    }
    return send.fetch(req, 'post')
  },
  /* 通话标签 end */

  /* 服务质量标签 start */
  /**
   * 查询服务标签
   * @param data
   * @param data.page
   * @param data.limit
   * @param data.DisplayName  可选/在根据名称查询时/支持模糊查询
   * @returns {*}
   */
  queryServiceQualityLabel (data) {
    let req = {
      data: data,
      action: 'config.callLabel.queryServiceQualityLabel'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 保存服务标签
   * @param data
   * @param data.page
   * @param data.limit
   * @param data.DisplayName  可选/在根据名称查询时/支持模糊查询
   * @returns {*}
   */
  saveServiceQualityLabel (data) {
    let req = {
      data: data,
      action: 'config.callLabel.saveServiceQualityLabel'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 修改服务标签状态
   * @param data
   * @param data.page
   * @param data.limit
   * @param data.DisplayName  可选/在根据名称查询时/支持模糊查询
   * @returns {*}
   */
  updateServiceQualityLabelStatus (data) {
    let req = {
      data: data,
      action: 'config.callLabel.updateServiceQualityLabelStatus'
    }
    return send.fetch(req, 'post')
  },
  /* 通话标签 start */

  /**
   * 查询满意度选项
   * @param data
   * @param data.page
   * @param data.limit
   * @param data.DisplayName  可选/在根据名称查询时/支持模糊查询
   * @returns {*}
   */
  findOneAppDic (data) {
    let req = {
      data: data,
      action: 'config.dic.findOneAppDic'
    }
    return send.fetch(req, 'post')
  },
  updateOneAppDic (data) {
    let req = {
      data: data,
      action: 'config.dic.updateOneAppDic'
    }
    return send.fetch(req, 'post')
  },
  queryBlackNum (data) {
    let req = {
      data: data,
      action: 'config.ivr.blacklist.queryBlackNum'
    }
    return send.fetch(req, 'post')
  },
  delBlackNum (data) {
    let req = {
      data: data,
      action: 'config.ivr.blacklist.delBlackNum'
    }
    return send.fetch(req, 'post')
  },
  saveBlackList (data) {
    let req = {
      data: data,
      action: 'config.ivr.blacklist.saveBlackList'
    }
    return send.fetch(req, 'post')
  },

  /* 通话节点管理api start */

  /**
   * 播放语音节点:添加,更新(_id有值)
   */
  updateAnnouncement (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.announcement.updateAnnouncement'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 播放语音节点:查询
   * **/
  queryAnnouncement (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.announcement.queryAnnouncement'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 播放语音节点:删除
   * **/
  deleteAnnouncement (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.announcement.deleteAnnouncement'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 播放文本节点:添加或更新(_id有值)
   * **/
  updateTextAnnouncement (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.textAnnouncement.updateTextAnnouncement'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 播放文本节点:查询
   * **/
  queryTextAnnouncement (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.textAnnouncement.queryTextAnnouncement'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 播放文本节点:删除文本播放节点
   * **/
  deleteTextAnnouncement (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.textAnnouncement.deleteTextAnnouncement'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 按键菜单接口: 更新 添加
   * **/
  updateIvr (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.ivr.updateIvr'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 按键菜单接口: 查询
   * **/
  queryIvr (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.ivr.queryIvr'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 按键菜单接口: 删除
   * **/
  deleteIvr (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.ivr.deleteIvr'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 采集输入节点: 更新 添加
   * **/
  updateValidation (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.validation.updateValidation'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 采集输入节点: 查询
   * **/
  queryValidation (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.validation.queryValidation'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 采集输入节点: 删除
   * **/
  deleteValidation (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.validation.deleteValidation'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 赋值节点: 添加或更新
   * **/
  updateAssignment (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.assignment.updateAssignment'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 赋值节点: 查询
   * **/
  queryAssignment (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.assignment.queryAssignment'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 赋值节点: 删除
   * **/
  deleteAssignment (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.assignment.deleteAssignment'
    }
    return send.fetch(req, 'post')
  },
  /**
   * MD5 加密节点: 添加或更新
   * **/
  updateEncryptMd5 (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.encryptMd5.updateEncryptMd5'
    }
    return send.fetch(req, 'post')
  },
  /**
   * MD5 加密节点: 查询
   * **/
  queryEncryptMd5 (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.encryptMd5.queryEncryptMd5'
    }
    return send.fetch(req, 'post')
  },
  /**
   * MD5 加密节点:删除
   * **/
  deleteEncryptMd5 (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.encryptMd5.deleteEncryptMd5'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 变量路由节点: 添加或更新
   * **/
  updateRoute (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.route.updateRoute'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 变量路由节点: 查询
   * **/
  queryRoute (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.route.queryRoute'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 变量路由节点: 删除
   * **/
  deleteRoute (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.route.deleteRoute'
    }
    return send.fetch(req, 'post')
  },
  /**
   * CallUrl节点: 添加或更新
   * **/
  updateCallUrl (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.callUrl.updateCallUrl'
    }
    return send.fetch(req, 'post')
  },
  /**
   * CallUrl节点: 查询
   * **/
  queryCallUrl (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.callUrl.queryCallUrl'
    }
    return send.fetch(req, 'post')
  },
  /**
   * CallUrl节点: 删除
   * **/
  deleteCallUrl (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.callUrl.deleteCallUrl'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 时间节点: 查询更新
   * **/
  updateDate (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.date.updateDate'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 时间节点: 查询
   * **/
  queryDate (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.date.queryDate'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 时间节点:删除
   * **/
  deleteDate (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.date.deleteDate'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 语音留言节点: 添加更新
   * **/
  updateVoiceMail (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.voiceMail.updateVoiceMail'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 语音留言节点: 查询
   * **/
  queryVoiceMail (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.voiceMail.queryVoiceMail'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 语音留言节点: 删除
   * **/
  deleteVoiceMail (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.voiceMail.deleteVoiceMail'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 会议室节点: 添加或更新
   * **/
  updateRoom (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.room.updateRoom'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 会议室节点: 查询
   * **/
  queryRoom (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.room.queryRoom'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 会议室节点: 删除
   * **/
  deleteRoom (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.room.deleteRoom'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 自定义满意度节点:添加或更新
   * **/
  updateSatisfaction (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.satisfaction.updateSatisfaction'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 自定义满意度节点:删除
   * **/
  deleteSatisfaction (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.satisfaction.deleteSatisfaction'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 自定义节点:添加或更新
   * **/
  updateExtensionPeer (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.extensionPeer.updateExtensionPeer'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 自定义节点:查询
   * **/
  queryExtensionPeer (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.extensionPeer.queryExtensionPeer'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 自定义节点:删除
   * **/
  deleteExtensionPeer (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.extensionPeer.deleteExtensionPeer'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 双向回呼节点:新增或更新
   * **/
  updateTwoWayCall (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.twowayCall.updateTwoWayCall'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 双向回呼节点:查询
   * **/
  queryTwoWayCall (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.twowayCall.queryTwoWayCall'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 双向回呼节点:删除
   * **/
  deleteTwoWayCall (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.twowayCall.deleteTwoWayCall'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 语音识别节点: 更新或添加
   * **/
  updateAsr (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.asr.updateAsr'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 语音识别节点: 查询
   * **/
  queryAsr (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.asr.queryAsr'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 语音识别节点: 删除
   * **/
  deleteAsr (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.asr.deleteAsr'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 采集工号并拨打节点:添加或更新
   * **/
  updateSuperDialJobNum (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.superDialJobNum.updateSuperDialJobNum'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 采集工号并拨打节点:删除
   * **/
  deleteSuperDialJobNum (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.superDialJobNum.deleteSuperDialJobNum'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 转 IVR 菜单节点:添加或更新
   * **/
  updateIvrMenu (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.ivrMenu.updateIvrMenu'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 转 IVR 菜单节点:查询
   * **/
  queryIvrMenu (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.ivrMenu.queryIvrMenu'
    }
    return send.fetch(req, 'post')
  },
  /**
   * 转 IVR 菜单节点: 删除
   * **/
  deleteIvrMenu (data) {
    let req = {
      data: data,
      action: 'config.ivr.node.ivrMenu.deleteIvrMenu'
    }
    return send.fetch(req, 'post')
  },

  /* 通话节点管理 api end */
  soundToQiniuTransfer (data) {
    let req = {
      data: data,
      action: 'config.ivr.sound.soundToQiniuTransfer'
    }
    return send.fetch(req, 'post')
  },
  soundToQiniuTransferRefresh (data) {
    let req = {
      data: data,
      action: 'config.ivr.sound.soundToQiniuTransferRefresh'
    }
    return send.fetch(req, 'post')
  },
  ivrOperationVerify (data) {
    let req = {
      data: data,
      action: 'config.ivr.ivrOperationVerify'
    }
    return send.fetch(req, 'post')
  },
  // 导入黑红名单  获取xls表头
  getBlackRedXlsHeads (data) {
    let req = {
      data: data,
      action: 'config.ivr.blacklist.getBlackRedXlsHeads'
    }
    return send.fetch(req, 'post')
  },
  // 导入黑红名单 写入
  blackRedImport (data) {
    let req = {
      data: data,
      action: 'config.ivr.blacklist.blackRedImport'
    }
    return send.fetch(req, 'post')
  },
  // 查询导入黑红名单批次列表
  queryBlackRedImportTasks (data) {
    let req = {
      data: data,
      action: 'config.ivr.blacklist.queryBlackRedImportTasks'
    }
    return send.fetch(req, 'post')
  },
  // 查询导入黑红名单批次详情
  queryImportDataDetail (data) {
    let req = {
      data: data,
      action: 'config.ivr.blacklist.queryImportData'
    }
    return send.fetch(req, 'post')
  },
  // 批量删除黑红名单
  // [{"_id":"b83cbf3e-9bd4-473c-841e-6ff1d298cdc5","Account":"N00000002403","BlackNum":"15010457341","PBX":"pbx.tx.test02.0","Type":"0","Memo":"手动添加的"}]
  batchDeleteBlackNumber (data) {
    let req = {
      data: data,
      action: 'config.ivr.blacklist.batchDeleteBlackNumber'
    }
    return send.fetch(req, 'post')
  },
  // 批量导出黑红名单
  // queryImportDataDetail (data) {
    //   let req = {
      //     data: data,
      //     action: 'config.ivr.blacklist.queryImportData'
      //   }
      //   return send.fetch(req, 'post')
      // },
    //查询电话本列表
    queryCallBook (data) {
      let req = {
        data: data,
        action: 'config.callBook.queryCallBook'
      }
      return send.fetch(req, 'post')
    },
    //新增电话本
    addCallBook (data) {
      let req = {
        data: data,
        action: 'config.callBook.addCallBook'
      }
      return send.fetch(req, 'post')
    },
    //编辑电话本
    updateCallBook (data) {
      let req = {
        data: data,
        action: 'config.callBook.updateCallBook'
      }
      return send.fetch(req, 'post')
    },
    //删除电话本
    deleteCallBook (data) {
      let req = {
        data: data,
        action: 'config.callBook.deleteCallBook'
      }
      return send.fetch(req, 'post')
    },

}
